Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: make test suite run doctests #31

Merged
merged 3 commits into from
Dec 13, 2022

Conversation

oscarbenjamin
Copy link
Collaborator

Currently these doctests should fail. I'm going to push them to CI first just to see the output on all platforms and then I'll push another commit to fix the doctests.

@fredrik-johansson
Copy link
Collaborator

The handful of failures on Linux and Mac seem to be due the changed print style in Arb 2.20, so just a matter of updating the doctests.

Then for Windows you have a ton of these

File "C:\hostedtoolcache\windows\Python\3.11.0\x64\Lib\site-packages\flint\_flint.cp311-win_amd64.pyd", line ?, in flint._flint.__test__.acb.acos (line 516)
Failed example:
    showgood(lambda: acb(2).acos(), dps=25)
Exception raised:
    Traceback (most recent call last):
      File "C:\hostedtoolcache\windows\Python\3.11.0\x64\Lib\doctest.py", line 1350, in __run
        exec(compile(example.source, filename, "single",
      File "<doctest flint._flint.__test__.acb.acos (line 516)[0]>", line 1, in <module>
        showgood(lambda: acb(2).acos(), dps=25)
      File "src\flint\functions.pyx", line 114, in flint._flint.showgood
        good(func, **kwargs)
      File "src\flint\functions.pyx", line 100, in flint._flint.good
        raise ValueError("no convergence (maxprec=%i, try higher maxprec)" % maxprec)
    ValueError: no convergence (maxprec=960, try higher maxprec)
**********************************************************************

which probably all result from the same bug somewhere in python-flint (maybe a lingering long conversion).

@oscarbenjamin
Copy link
Collaborator Author

which probably all result from the same bug somewhere in python-flint (maybe a lingering long conversion).

It might actually be a problem in Arb. There are a lot of compiler warnings in the Windows build log from building Arb (before python-flint is built) like:

2022-12-12T12:20:13.3306225Z In file included from D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arb.h:23,
2022-12-12T12:20:13.3897798Z                  from add.c:12:
2022-12-12T12:20:13.3926891Z In function 'arf_mag_add_ulp',
2022-12-12T12:20:13.3989970Z     inlined from 'arb_add_arf' at add.c:32:9:
2022-12-12T12:20:13.4039337Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: warning: 'mag_add_2exp_fmpz' accessing 16 bytes in a region of size 8 [-Wstringop-overflow=]
2022-12-12T12:20:13.4089320Z  1249 |         mag_add_2exp_fmpz(z, x, e);
2022-12-12T12:20:13.4111705Z       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
2022-12-12T12:20:13.5537497Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 1 of type 'mag_struct[1]'
2022-12-12T12:20:13.5541991Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: warning: 'mag_add_2exp_fmpz' reading 16 bytes from a region of size 8 [-Wstringop-overread]
2022-12-12T12:20:13.5552934Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 2 of type 'const mag_struct[1]'
2022-12-12T12:20:13.5556539Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 3 of type 'const fmpz[1]' {aka 'const long long int[1]'}
2022-12-12T12:20:13.5570863Z In file included from D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arb.h:22:
2022-12-12T12:20:13.5593709Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/mag.h: In function 'arb_add_arf':
2022-12-12T12:20:13.5596384Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/mag.h:290:6: note: in a call to function 'mag_add_2exp_fmpz'
2022-12-12T12:20:13.5599451Z   290 | void mag_add_2exp_fmpz(mag_t z, const mag_t x, const fmpz_t e);
2022-12-12T12:20:13.5610550Z       |      ^~~~~~~~~~~~~~~~~
2022-12-12T12:20:13.5820764Z In function 'arf_mag_add_ulp',
2022-12-12T12:20:13.5828996Z     inlined from 'arb_add_ui' at add.c:43:9:
2022-12-12T12:20:13.5832723Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: warning: 'mag_add_2exp_fmpz' accessing 16 bytes in a region of size 8 [-Wstringop-overflow=]
2022-12-12T12:20:13.5969996Z  1249 |         mag_add_2exp_fmpz(z, x, e);
2022-12-12T12:20:13.5975350Z       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
2022-12-12T12:20:13.6032569Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 1 of type 'mag_struct[1]'
2022-12-12T12:20:13.6045792Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: warning: 'mag_add_2exp_fmpz' reading 16 bytes from a region of size 8 [-Wstringop-overread]
2022-12-12T12:20:13.6099882Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 2 of type 'const mag_struct[1]'
2022-12-12T12:20:13.6176530Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 3 of type 'const fmpz[1]' {aka 'const long long int[1]'}
2022-12-12T12:20:13.6200540Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/mag.h: In function 'arb_add_ui':
2022-12-12T12:20:13.6280494Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/mag.h:290:6: note: in a call to function 'mag_add_2exp_fmpz'
2022-12-12T12:20:13.8132083Z   290 | void mag_add_2exp_fmpz(mag_t z, const mag_t x, const fmpz_t e);
2022-12-12T12:20:13.8351365Z       |      ^~~~~~~~~~~~~~~~~
2022-12-12T12:20:13.8448606Z In function 'arf_mag_add_ulp',
2022-12-12T12:20:13.8526044Z     inlined from 'arb_add_si' at add.c:54:9:
2022-12-12T12:20:13.8527969Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: warning: 'mag_add_2exp_fmpz' accessing 16 bytes in a region of size 8 [-Wstringop-overflow=]
2022-12-12T12:20:13.8563490Z  1249 |         mag_add_2exp_fmpz(z, x, e);
2022-12-12T12:20:13.8586755Z       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~
2022-12-12T12:20:13.9298212Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 1 of type 'mag_struct[1]'
2022-12-12T12:20:13.9308682Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: warning: 'mag_add_2exp_fmpz' reading 16 bytes from a region of size 8 [-Wstringop-overread]
2022-12-12T12:20:13.9431161Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 2 of type 'const mag_struct[1]'
2022-12-12T12:20:13.9447856Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: note: referencing argument 3 of type 'const fmpz[1]' {aka 'const long long int[1]'}
2022-12-12T12:20:13.9481650Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/mag.h: In function 'arb_add_si':
2022-12-12T12:20:13.9581019Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/mag.h:290:6: note: in a call to function 'mag_add_2exp_fmpz'
2022-12-12T12:20:13.9605594Z   290 | void mag_add_2exp_fmpz(mag_t z, const mag_t x, const fmpz_t e);
2022-12-12T12:20:13.9626935Z       |      ^~~~~~~~~~~~~~~~~
2022-12-12T12:20:14.0640584Z In function 'arf_mag_add_ulp',
2022-12-12T12:20:14.1550640Z     inlined from 'arb_add_fmpz' at add.c:65:9:
2022-12-12T12:20:14.2554123Z D:/a/python-flint/python-flint/.local/src/arb-2.23.0/arf.h:1249:9: warning: 'mag_add_2exp_fmpz' accessing 16 bytes in a region of size 8 [-Wstringop-overflow=]
2022-12-12T12:20:14.2942902Z  1249 |         mag_add_2exp_fmpz(z, x, e);
2022-12-12T12:20:14.3004315Z       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~

@oscarbenjamin
Copy link
Collaborator Author

I've updated the doctests and now the Linux/OSX tests are passing.

@fredrik-johansson
Copy link
Collaborator

Those compiler warnings are false positives in GCC 11 and later; see flintlib/flint#1079

Nevertheless, I suppose to debug this, a good start would be to run the Arb test suite after building Arb, to see if that catches anything?

@oscarbenjamin
Copy link
Collaborator Author

Those compiler warnings are false positives in GCC 11 and later; see flintlib/flint2#1079

Are you sure they're the same?

It's stringop-overflow rather than stringop-overread. Also these look exactly like the warnings previously seen building python-flint (now removed since #28).

@fredrik-johansson
Copy link
Collaborator

It's stringop-overflow rather than stringop-overread.

Yeah, those seems to be two sides of the same coin.

Do the same warnings show up when building Flint?

@oscarbenjamin
Copy link
Collaborator Author

I've attached the part of the Windows build log that builds flint, arb and python-flint: build_log.txt

There are some warnings from flint as well like:

2022-12-12T22:38:37.5598989Z frobenius.c: In function 'qadic_frobenius':
2022-12-12T22:38:37.5603389Z frobenius.c:313:9: warning: 'padic_poly_set' reading 48 bytes from a region of size 8 [-Wstringop-overread]
2022-12-12T22:38:37.5656693Z   313 |         padic_poly_set(rop, op, &ctx->pctx);
2022-12-12T22:38:37.5662520Z       |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-12-12T22:38:37.5781799Z frobenius.c:313:9: note: referencing argument 3 of type 'const padic_ctx_struct[1]'
2022-12-12T22:38:37.5816794Z In file included from D:/a/python-flint/python-flint/.local/src/flint-2.9.0/qadic.h:36,
2022-12-12T22:38:37.5835816Z                  from frobenius.c:14:
2022-12-12T22:38:37.6723450Z D:/a/python-flint/python-flint/.local/src/flint-2.9.0/padic_poly.h:169:16: note: in a call to function 'padic_poly_set'
2022-12-12T22:38:37.7809978Z   169 | FLINT_DLL void padic_poly_set(padic_poly_t f, const padic_poly_t g,
2022-12-12T22:38:37.8731932Z       |                ^~~~~~~~~~~~~~

Building Arb gives many more warnings like that.

Building python-flint itself gives one warning about signed/unsigned comparison which isn't seen in the logs I think because cibuildwheel hides it. I see the same warning when building locally on Linux though:

$ bin/build_inplace.sh 
setup.py:8: DeprecationWarning: 

  `numpy.distutils` is deprecated since NumPy 1.23.0, as a result
  of the deprecation of `distutils` itself. It will be removed for
  Python >= 3.12. For older Python versions it will remain present.
  It is recommended to use `setuptools < 60.0` for those Python versions.
  For more details, see:
    https://numpy.org/devdocs/reference/distutils_status_migration.html 


  from numpy.distutils.system_info import default_include_dirs, default_lib_dirs
running build_ext
cythoning src/flint/pyflint.pyx to src/flint/pyflint.c
/home/oscar/current/sympy/sympy.git/38venv/lib/python3.8/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/oscar/current/sympy/python-flint/src/flint/_flint.pxd
  tree = Parsing.p_module(s, pxd, full_module_name)
building 'flint._flint' extension
INFO: C compiler: x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC

INFO: compile options: '-I/usr/local/include -I/home/oscar/current/sympy/sympy.git/38venv/include -I/usr/local/include/flint -I/home/oscar/current/sympy/sympy.git/38venv/include/flint -I/home/oscar/current/sympy/sympy.git/38venv/include -I/usr/include/python3.8 -c'
INFO: x86_64-linux-gnu-gcc: src/flint/pyflint.c
src/flint/pyflint.c: In function ‘__pyx_pf_5flint_6_flint_14dirichlet_char_4__init__’:
src/flint/pyflint.c:195151:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if (((__pyx_t_5 > __pyx_t_6) != 0)) {
                       ^
src/flint/pyflint.c: At top level:
src/flint/pyflint.c:29067:18: warning: ‘__pyx_f_5flint_6_flint_any_as_fmpz_mpoly’ defined but not used [-Wunused-function]
 static PyObject *__pyx_f_5flint_6_flint_any_as_fmpz_mpoly(CYTHON_UNUSED PyObject *__pyx_v_x) {
                  ^
INFO: x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -DNDEBUG -g -fwrapv -O2 -Wall build/temp.linux-x86_64-cpython-38/src/flint/pyflint.o -L/home/oscar/current/sympy/sympy.git/38venv/lib -L/usr/local/lib -L/usr/lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib -larb -lflint -o /home/oscar/current/sympy/python-flint/src/flint/_flint.cpython-38-x86_64-linux-gnu.so

@oscarbenjamin
Copy link
Collaborator Author

I've attached the part of the Windows build log that builds flint, arb and python-flint: build_log.txt

The full build log can be seen in GitHub Actions and also includes a large number of warnings from compiling GMP about dllexport attribute being ignored.

@fredrik-johansson
Copy link
Collaborator

You could do export ARB_TEST_MULTIPLIER=0.1 to run the Arb tests quicker.

@oscarbenjamin
Copy link
Collaborator Author

You could do export ARB_TEST_MULTIPLIER=0.1 to run the Arb tests quicker.

The tests completed quickly enough on Linux and passed. They failed immediately on OSX because it couldn't find the shared library (hopefully fixed by last commit).

They failed on Windows:

2022-12-13T12:08:18.1734084Z     CC   ../build/fmpr/test/t-add.exe
2022-12-13T12:08:18.9935857Z     CC   ../build/fmpr/test/t-add_naive.exe
2022-12-13T12:08:19.6751461Z     CC   ../build/fmpr/test/t-cmp.exe
2022-12-13T12:08:20.0901107Z     CC   ../build/fmpr/test/t-cmp_2exp_si.exe
2022-12-13T12:08:20.5559189Z     CC   ../build/fmpr/test/t-cmpabs.exe
2022-12-13T12:08:20.9494804Z     CC   ../build/fmpr/test/t-cmpabs_2exp_si.exe
2022-12-13T12:08:21.4319695Z     CC   ../build/fmpr/test/t-div.exe
2022-12-13T12:08:21.8880907Z     CC   ../build/fmpr/test/t-exp.exe
2022-12-13T12:08:22.2945214Z     CC   ../build/fmpr/test/t-expm1.exe
2022-12-13T12:08:22.7158083Z     CC   ../build/fmpr/test/t-get_d.exe
2022-12-13T12:08:23.0977184Z     CC   ../build/fmpr/test/t-get_fmpz.exe
2022-12-13T12:08:23.5195588Z     CC   ../build/fmpr/test/t-get_mpfr.exe
2022-12-13T12:08:23.9122276Z     CC   ../build/fmpr/test/t-log.exe
2022-12-13T12:08:24.3426100Z     CC   ../build/fmpr/test/t-log1p.exe
2022-12-13T12:08:24.7559402Z     CC   ../build/fmpr/test/t-mul.exe
2022-12-13T12:08:25.2519165Z     CC   ../build/fmpr/test/t-mul_fmpz.exe
2022-12-13T12:08:25.7959123Z     CC   ../build/fmpr/test/t-mul_naive.exe
2022-12-13T12:08:26.2466296Z     CC   ../build/fmpr/test/t-mul_si.exe
2022-12-13T12:08:26.8376319Z     CC   ../build/fmpr/test/t-mul_ui.exe
2022-12-13T12:08:27.4040401Z     CC   ../build/fmpr/test/t-normalise.exe
2022-12-13T12:08:27.9473862Z     CC   ../build/fmpr/test/t-root.exe
2022-12-13T12:08:28.9189546Z     CC   ../build/fmpr/test/t-rsqrt.exe
2022-12-13T12:08:28.9189905Z     CC   ../build/fmpr/test/t-set_fmpq.exe
2022-12-13T12:08:29.9370655Z     CC   ../build/fmpr/test/t-set_fmpz_2exp.exe
2022-12-13T12:08:29.9370974Z     CC   ../build/fmpr/test/t-set_round_mpn.exe
2022-12-13T12:08:30.1895780Z     CC   ../build/fmpr/test/t-set_round_ui_2exp_fmpz.exe
2022-12-13T12:08:30.6484689Z     CC   ../build/fmpr/test/t-set_round_uiui_2exp_fmpz.exe
2022-12-13T12:08:31.1526052Z     CC   ../build/fmpr/test/t-sqrt.exe
2022-12-13T12:08:31.5969393Z     CC   ../build/fmpr/test/t-sub.exe
2022-12-13T12:08:32.3049264Z     CC   ../build/fmpr/test/t-ulp.exe
2022-12-13T12:08:32.9388202Z make[1]: *** [../Makefile.subdirs:84: ../build/fmpr/test/t-add.exe_RUN] Error 127
2022-12-13T12:08:32.9390398Z make[1]: Leaving directory '/d/a/python-flint/python-flint/.local/src/arb-2.23.0/fmpr'
2022-12-13T12:08:32.9430016Z make: *** [Makefile:168: check] Error 2

Hopefully that's the same problem as OSX so need to wait for latest commit to see...

@oscarbenjamin
Copy link
Collaborator Author

You could do export ARB_TEST_MULTIPLIER=0.1 to run the Arb tests quicker.

The tests completed quickly enough on Linux and passed.

Once this issue is resolved I'll leave the test run in but with a reduced multiplier for ongoing CI.

@oscarbenjamin
Copy link
Collaborator Author

which probably all result from the same bug somewhere in python-flint (maybe a lingering long conversion).

There are a lot of places where python-flint uses long but flint uses slong. Should we basically change every use of long in python-flint?

@oscarbenjamin
Copy link
Collaborator Author

Should we basically change every use of long in python-flint?

It would be nice if there was some way to have the types declared in cython actually checked by the C compiler...

@oscarbenjamin
Copy link
Collaborator Author

Still the same problem with running the tests on Windows. There isn't any meaningful error message so I'm not sure where to go from there.

The Arb tests on Linux are passing and it looks like they will pass on OSX as well.

@fredrik-johansson
Copy link
Collaborator

There are a lot of places where python-flint uses long but flint uses slong. Should we basically change every use of long in python-flint?

Yes, this may be necessary.

@fredrik-johansson
Copy link
Collaborator

2022-12-13T12:08:32.9388202Z make[1]: *** [../Makefile.subdirs:84: ../build/fmpr/test/t-add.exe_RUN] Error 127
2022-12-13T12:08:32.9390398Z make[1]: Leaving directory '/d/a/python-flint/python-flint/.local/src/arb-2.23.0/fmpr'
2022-12-13T12:08:32.9430016Z make: *** [Makefile:168: check] Error 2

The very first test failing suggests that the test programs don't manage to link to the library or something like that.

@oscarbenjamin
Copy link
Collaborator Author

For now I will remove the make check, make a separate CI job for the doctests and merge this with the updated doctests. Then CI will show that the other tests are passing on Windows but the doctests are failing and wheels will still be built for Windows.

@oscarbenjamin
Copy link
Collaborator Author

The very first test failing suggests that the test programs don't manage to link to the library or something like that.

Probably. That was the problem with OSX. I'd have to switch over to the Windows machine I've been using to try it locally.

@oscarbenjamin
Copy link
Collaborator Author

Okay, that will do for now. This has fixed the doctests and makes sure that they are tested in CI. It currently shows that they fail on Windows but that can be something to fix in another PR.

The failing doctests all look like this and are all in arb and acb apart from two in dirichlet_char:

**********************************************************************
File "C:\hostedtoolcache\windows\Python\3.11.0\x64\Lib\site-packages\flint\_flint.cp311-win_amd64.pyd", line ?, in flint._flint.dirichlet_char.l
Failed example:
    showgood(lambda: chi.l(2), dps=25)
Exception raised:
    Traceback (most recent call last):
      File "C:\hostedtoolcache\windows\Python\3.11.0\x64\Lib\doctest.py", line 1350, in __run
        exec(compile(example.source, filename, "single",
      File "<doctest flint._flint.dirichlet_char.l[1]>", line 1, in <module>
        showgood(lambda: chi.l(2), dps=25)
      File "src\flint\functions.pyx", line 114, in flint._flint.showgood
        good(func, **kwargs)
      File "src\flint\functions.pyx", line 100, in flint._flint.good
        raise ValueError("no convergence (maxprec=%i, try higher maxprec)" % maxprec)
    ValueError: no convergence (maxprec=960, try higher maxprec)
**********************************************************************
158 items had failures:
   1 of   1 in flint._flint.__test__.acb.acos (line 516)
   1 of   3 in flint._flint.__test__.acb.agm (line 571)
   1 of   3 in flint._flint.__test__.acb.arg (line 350)
   2 of   2 in flint._flint.__test__.acb.bessel_i (line 2314)
   1 of   2 in flint._flint.__test__.acb.bessel_j (line 2265)
   2 of   3 in flint._flint.__test__.acb.bessel_k (line 2293)
   1 of   1 in flint._flint.__test__.acb.bessel_y (line 2280)
   1 of   1 in flint._flint.__test__.acb.chebyshev_t (line 1396)
   1 of   1 in flint._flint.__test__.acb.chebyshev_u (line 1408)
   1 of   1 in flint._flint.__test__.acb.chi (line 1332)
   1 of   1 in flint._flint.__test__.acb.ci (line 1310)
   1 of   1 in flint._flint.__test__.acb.cos_pi (line 825)
   1 of   1 in flint._flint.__test__.acb.cot_pi (line 859)
   1 of   1 in flint._flint.__test__.acb.coulomb (line 2513)
   2 of   2 in flint._flint.__test__.acb.csgn (line 321)
   2 of   3 in flint._flint.__test__.acb.dirichlet_eta (line 2091)
   1 of   1 in flint._flint.__test__.acb.ei (line 1288)
   2 of   3 in flint._flint.__test__.acb.elliptic_e (line 1161)
   2 of   2 in flint._flint.__test__.acb.elliptic_e_inc (line 1967)
   2 of   2 in flint._flint.__test__.acb.elliptic_f (line 1951)
   1 of   1 in flint._flint.__test__.acb.elliptic_invariants (line 2078)
   2 of   3 in flint._flint.__test__.acb.elliptic_k (line 1146)
   1 of   1 in flint._flint.__test__.acb.elliptic_pi (line 1983)
   2 of   2 in flint._flint.__test__.acb.elliptic_pi_inc (line 1997)
   1 of   1 in flint._flint.__test__.acb.elliptic_roots (line 2064)
   1 of   2 in flint._flint.__test__.acb.erf (line 1037)
   1 of   1 in flint._flint.__test__.acb.erfc (line 1263)
   1 of   1 in flint._flint.__test__.acb.erfi (line 1274)
   2 of   3 in flint._flint.__test__.acb.exp_pi_i (line 732)
   1 of   1 in flint._flint.__test__.acb.expm1 (line 747)
   2 of   2 in flint._flint.__test__.acb.fresnel_c (line 1848)
   2 of   2 in flint._flint.__test__.acb.fresnel_s (line 1835)
   1 of   1 in flint._flint.__test__.acb.gegenbauer_c (line 1434)
   1 of   1 in flint._flint.__test__.acb.hermite_h (line 1460)
   2 of   2 in flint._flint.__test__.acb.hypgeom_0f1 (line 2145)
   5 of   7 in flint._flint.__test__.acb.hypgeom_1f1 (line 2237)
   4 of   5 in flint._flint.__test__.acb.integral (line 2404)
   1 of   1 in flint._flint.__test__.acb.jacobi_p (line 1420)
   1 of   1 in flint._flint.__test__.acb.laguerre_l (line 1447)
   1 of   7 in flint._flint.__test__.acb.lambertw (line 1592)
   3 of   4 in flint._flint.__test__.acb.legendre_p (line 1472)
   3 of   4 in flint._flint.__test__.acb.legendre_q (line 1497)
   2 of   2 in flint._flint.__test__.acb.li (line 1343)
   1 of   2 in flint._flint.__test__.acb.modular_j (line 1111)
   1 of   1 in flint._flint.__test__.acb.pi (line 677)
   1 of   2 in flint._flint.__test__.acb.real_abs (line 1647)
   1 of   1 in flint._flint.__test__.acb.real_ceil (line 1706)
   1 of   1 in flint._flint.__test__.acb.real_floor (line 1694)
   1 of   2 in flint._flint.__test__.acb.real_max (line 1718)
   1 of   2 in flint._flint.__test__.acb.real_min (line 1731)
   1 of   2 in flint._flint.__test__.acb.rising (line 992)
   1 of   1 in flint._flint.__test__.acb.rising2 (line 1006)
   2 of   3 in flint._flint.__test__.acb.sgn (line 335)
   1 of   1 in flint._flint.__test__.acb.shi (line 1321)
   1 of   1 in flint._flint.__test__.acb.si (line 1299)
   1 of   1 in flint._flint.__test__.acb.sin_cos_pi (line 836)
   1 of   1 in flint._flint.__test__.acb.sin_pi (line 814)
   2 of   3 in flint._flint.__test__.acb.stieltjes (line 1760)
   1 of   1 in flint._flint.__test__.acb.tan_pi (line 848)
   4 of   4 in flint._flint.__test__.acb.zeta_zero (line 2347)
   3 of   6 in flint._flint.__test__.acb_mat.det (line 191)
   2 of   5 in flint._flint.__test__.arb.agm (line 1255)
   2 of   3 in flint._flint.__test__.arb.bell_number (line 1302)
   1 of   4 in flint._flint.__test__.arb.bernoulli (line 1282)
   1 of   2 in flint._flint.__test__.arb.cos_pi (line 797)
   1 of   2 in flint._flint.__test__.arb.cot_pi (line 857)
   1 of   2 in flint._flint.__test__.arb.fac (line 1346)
   1 of   4 in flint._flint.__test__.arb.gamma (line 1111)
   2 of   2 in flint._flint.__test__.arb.legendre_p_root (line 1666)
   1 of   2 in flint._flint.__test__.arb.log1p (line 734)
   2 of   3 in flint._flint.__test__.arb.partitions_p (line 1319)
   1 of   3 in flint._flint.__test__.arb.rising (line 1187)
   1 of   2 in flint._flint.__test__.arb.sin_pi (line 784)
   1 of   2 in flint._flint.__test__.arb.sinc_pi (line 940)
   1 of   3 in flint._flint.__test__.arb.sqrt (line 650)
   1 of   2 in flint._flint.__test__.arb.tan_pi (line 844)
   3 of   6 in flint._flint.__test__.arb_mat.det (line 181)
   1 of   2 in flint._flint.__test__.dirichlet_char.hardy_z (line 182)
   1 of   4 in flint._flint.__test__.dirichlet_char.l (line 163)
   1 of   1 in flint._flint.acb.acos
   1 of   3 in flint._flint.acb.agm
   1 of   3 in flint._flint.acb.arg
   2 of   2 in flint._flint.acb.bessel_i
   1 of   2 in flint._flint.acb.bessel_j
   2 of   3 in flint._flint.acb.bessel_k
   1 of   1 in flint._flint.acb.bessel_y
   1 of   1 in flint._flint.acb.chebyshev_t
   1 of   1 in flint._flint.acb.chebyshev_u
   1 of   1 in flint._flint.acb.chi
   1 of   1 in flint._flint.acb.ci
   1 of   1 in flint._flint.acb.cos_pi
   1 of   1 in flint._flint.acb.cot_pi
   1 of   1 in flint._flint.acb.coulomb
   2 of   2 in flint._flint.acb.csgn
   2 of   3 in flint._flint.acb.dirichlet_eta
   1 of   1 in flint._flint.acb.ei
   2 of   3 in flint._flint.acb.elliptic_e
   2 of   2 in flint._flint.acb.elliptic_e_inc
   2 of   2 in flint._flint.acb.elliptic_f
   1 of   1 in flint._flint.acb.elliptic_invariants
   2 of   3 in flint._flint.acb.elliptic_k
   1 of   1 in flint._flint.acb.elliptic_pi
   2 of   2 in flint._flint.acb.elliptic_pi_inc
   1 of   1 in flint._flint.acb.elliptic_roots
   1 of   2 in flint._flint.acb.erf
   1 of   1 in flint._flint.acb.erfc
   1 of   1 in flint._flint.acb.erfi
   2 of   3 in flint._flint.acb.exp_pi_i
   1 of   1 in flint._flint.acb.expm1
   2 of   2 in flint._flint.acb.fresnel_c
   2 of   2 in flint._flint.acb.fresnel_s
   1 of   1 in flint._flint.acb.gegenbauer_c
   1 of   1 in flint._flint.acb.hermite_h
   2 of   2 in flint._flint.acb.hypgeom_0f1
   5 of   7 in flint._flint.acb.hypgeom_1f1
   4 of   5 in flint._flint.acb.integral
   1 of   1 in flint._flint.acb.jacobi_p
   1 of   1 in flint._flint.acb.laguerre_l
   1 of   7 in flint._flint.acb.lambertw
   3 of   4 in flint._flint.acb.legendre_p
   3 of   4 in flint._flint.acb.legendre_q
   2 of   2 in flint._flint.acb.li
   1 of   2 in flint._flint.acb.modular_j
   1 of   1 in flint._flint.acb.pi
   1 of   2 in flint._flint.acb.real_abs
   1 of   1 in flint._flint.acb.real_ceil
   1 of   1 in flint._flint.acb.real_floor
   1 of   2 in flint._flint.acb.real_max
   1 of   2 in flint._flint.acb.real_min
   1 of   2 in flint._flint.acb.rising
   1 of   1 in flint._flint.acb.rising2
   2 of   3 in flint._flint.acb.sgn
   1 of   1 in flint._flint.acb.shi
   1 of   1 in flint._flint.acb.si
   1 of   1 in flint._flint.acb.sin_cos_pi
   1 of   1 in flint._flint.acb.sin_pi
   2 of   3 in flint._flint.acb.stieltjes
   1 of   1 in flint._flint.acb.tan_pi
   4 of   4 in flint._flint.acb.zeta_zero
   3 of   6 in flint._flint.acb_mat.det
   2 of   5 in flint._flint.arb.agm
   2 of   3 in flint._flint.arb.bell_number
   1 of   4 in flint._flint.arb.bernoulli
   1 of   2 in flint._flint.arb.cos_pi
   1 of   2 in flint._flint.arb.cot_pi
   1 of   2 in flint._flint.arb.fac
   1 of   4 in flint._flint.arb.gamma
   2 of   2 in flint._flint.arb.legendre_p_root
   1 of   2 in flint._flint.arb.log1p
   2 of   3 in flint._flint.arb.partitions_p
   1 of   3 in flint._flint.arb.rising
   1 of   2 in flint._flint.arb.sin_pi
   1 of   2 in flint._flint.arb.sinc_pi
   1 of   3 in flint._flint.arb.sqrt
   1 of   2 in flint._flint.arb.tan_pi
   3 of   6 in flint._flint.arb_mat.det
   1 of   2 in flint._flint.dirichlet_char.hardy_z
   1 of   4 in flint._flint.dirichlet_char.l
***Test Failed*** 234 failures.

The two dirichlet_char failures probably relate to the one significant build warning that I see for python-flint itself:

src/flint/pyflint.c: In function ‘__pyx_pf_5flint_6_flint_14dirichlet_char_4__init__’:
src/flint/pyflint.c:195151:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if (((__pyx_t_5 > __pyx_t_6) != 0)) {
                       ^

@oscarbenjamin oscarbenjamin merged commit 71d1612 into flintlib:master Dec 13, 2022
@oscarbenjamin oscarbenjamin deleted the pr_doctest branch December 13, 2022 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants